// pages/Address/Address.js
import {getProvince,getNext,addAddress,getNowAddress,updatAddress,delAddress} from '../../api/address'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    proList:[],//省的数组
    proIndex:0, //省的下标
    cityList:[],//市的数组
    cityIndex:0,//市的下标
    areaList:[],//区的数组
    areaIndex:0,//区的下标
    provinceId:"",//省id,
    cityId:"",//市id
    districtId: "" ,// 区的id
    linkMan:"",
    mobile:"",
    address:"",
    isDefault:false,
    code:"",
    defId:"",//地址id
  },
   toDel(){ //删除地址
    wx.showModal({
      title: '提示',
      content: '确定删除该收货地址吗',
      complete: async (res) => {
        if (res.confirm) {
          let res=await delAddress(this.data.defId);
          console.log(res)
          wx.showToast({
            title: '删除成功',
          })
          wx.navigateTo({
            url:"/pages/addressList/addressList"
          })
        }
      }
    })
 
  },
  async toSave(){ //添加地址接口或修改地址
    let obj={ //添加和修改接口需要的数据
        token:wx.getStorageSync("token"),
        linkMan:this.data.linkMan,
        code:this.data.code,
        mobile:this.data.mobile,
        address:this.data.address,
        provinceId:this.data.provinceId,
        cityId:this.data.cityId,
        districtId:this.data.districtId,
        isDefault:this.data.isDefault
    }
      if(this.data.defId){//假如有修改id
        obj.id=this.data.defId;//修改需要传送的id
          // 修改
        let editRes=updatAddress(obj)
        console.log(editRes)
      }else{
        let res=await addAddress(obj)
        console.log(res)
      }
 
    wx.navigateTo({
      url:"/pages/addressList/addressList"
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      defId:options.id
    })
   

  },
  async getPro(){ //获取省接口
    let res=await getProvince()
    console.log(res)
    res.data.unshift({name:"请选择",id:0})
    // 通过省的id 来找到对应下标
    this.setData({
      proList:res.data
    })
    if(this.data.defId){
      let proIndex= res.data.findIndex((item)=>item.id==this.data.provinceId)
      // 触发省的change事件
      let e={detail:{value:proIndex}}
      this.getCity(e)
    }
  
  },
  async getCity(e){ //省的change事件
    console.log(e);
    this.setData({
      proIndex:e.detail.value
    })
    console.log(this.data.proIndex)
    // 通过下标 找到对应省的id
    let id=this.data.proList[this.data.proIndex].id;
    this.setData({
      provinceId:id
    })
    let res=await getNext(id);
    console.log(res,"------8888")
    res.data.unshift({name:"请选择",id:-1})
    this.setData({
      cityList:res.data
    })
    if(this.data.defId){
      // 找到市的数据中  返回的id 出现的下标
      let cityIndex=res.data.findIndex(item=>item.id===this.data.cityId)
      let e={detail:{value:cityIndex}}
      this.getArea(e) //自动触发市的change事件
    }
  },
  async getArea(e){ //市的改变事件 获取区
    this.setData({
      cityIndex:e.detail.value
    })
    let id=this.data.cityList[this.data.cityIndex].id;
    this.setData({
      cityId:id
    })
    let res=await getNext(id);
    res.data.unshift({name:"请选择",id:-1})
    this.setData({
      areaList:res.data
    })
    if(this.data.defId){
      let areaIndex=res.data.findIndex(item=>item.id===this.data.districtId)
      let e={detail:{value:areaIndex}}
      this.changeIndex(e);
    }
  },
  changeIndex(e){ //区的change事件  
    this.setData({
      areaIndex:e.detail.value,
      // 存区的id
      districtId:this.data.areaList[e.detail.value].id
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    if(this.data.defId){ //如果有id获取到 当前地址信息
      getNowAddress(this.data.defId).then(res=>{
          console.log(res,"777777")
          this.setData({
            linkMan:res.data.info.linkMan,
            code:res.data.info.code,
            mobile:res.data.info.mobile,
            address:res.data.info.address,
            provinceId:res.data.info.provinceId,
            cityId:res.data.info.cityId,
            districtId:res.data.info.districtId,
            isDefault:res.data.info.isDefault
          })
      })
    }
    // 
    setTimeout(()=>{
      this.getPro();
    },100)
   
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})